package StringDemo;

public class StringDemo5 {
    public static void main(String[] args){
        //String的不可变性
        //String对象一旦创建，则不能修改，是不可变的
        //所谓的修改其实是创了新的对象，所指向的内存空间不变
        String s1 = "imooc";//在常量池中生成一个imooc字符串，在栈当中有一个s1的引用指向imooc字符串
       // s1="hello,"+s1;//在常量池中生成了一个新的字符串“hello，imooc”,赋值后指向了新的字符串

        String s2 = "hello,"+s1;//常量池生成hello，imooc，s2指向该字符串
        System.out.println(s1);
        System.out.println(s2);

        String s3 = new String("hello,imooc");//在堆当中生成对象，s3指向对象
        System.out.println(s3.substring(0,5));//取出的子串存储到常量池中
        System.out.println(s3);
        StringBuilder ss = new StringBuilder("sss");
        System.out.println(ss);
        System.out.println(ss.append(10));//append方法在字符串末尾加上指定的内容
        System.out.println(ss.charAt(3));
        System.out.println(ss.delete(3,4));
        System.out.println(ss.indexOf("s"));//有多个子串的时候？
    }
}
